/*
 * Copyright 2010 Christoph Widulle (christoph.widulle@googlemail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */



package com.android1.amarena2d.actions.movement;

import com.android1.amarena2d.actions.base.IntervalAction;

public abstract class ScreenMove extends IntervalAction {

    public static final int DirectionTop = 1;
    public static final int DirectionBottom = 2;
    public static final int DirectionLeft = 3;
    public static final int DirectionRight = 4;

    protected float endPositionX;
    protected float endPositionY;
    protected float startPositionX;
    protected float startPositionY;
    protected float deltaX;
    protected float deltaY;
    protected int direction;

    protected boolean fixTargetPosition = false;


    protected ScreenMove(int direction, float duration) {
        super(duration);
        this.direction = direction;
    }

    @Override
    public void update(float time) {
        target.setXY(startPositionX + deltaX * time, startPositionY + deltaY * time);
    }

    protected int getReverseDirection(int direction) {
        if (direction == DirectionLeft)
            return DirectionRight;
        else if (direction == DirectionRight)
            return DirectionLeft;
        else if (direction == DirectionBottom)
            return DirectionTop;
        else return DirectionBottom;
    }

}
